Skip to content

fix: auto-discovery with Yarn Plug'n'Play#176

Merged
V3RON merged 6 commits intocallstackincubator:mainfrom
leegeunhyeok:feat/yarn-pnp
Mar 18, 2026
Merged

fix: auto-discovery with Yarn Plug'n'Play#176
V3RON merged 6 commits intocallstackincubator:mainfrom
leegeunhyeok:feat/yarn-pnp

Conversation

@leegeunhyeok
Copy link
Contributor

@leegeunhyeok leegeunhyeok commented Feb 8, 2026

Description

Improves Rozenite integration to support Yarn PnP environments.

The current auto-discovery implementation for installed plugins assumes a node_modules linker environment and does not work in Yarn PnP setups. In PnP environments, plugins need to be discovered from the PnP virtual paths of installed dependencies.

Solution

This PR modifies the plugin discovery logic to handle Yarn PnP environments. When running in a PnP environment, the implementation now searches for plugins in the PnP virtual paths of installed dependencies.

Other logic, such as patching the devtools-frontend path, already works correctly in PnP environments. This is because Yarn PnP patches the fs module to resolve virtual paths automatically.

Compatibility

This change has no impact on non-PnP environments. The existing behavior remains unchanged for traditional node_modules setups.

Related Issue

Context

Discussion: #174
Discord: https://discord.com/channels/426714625279524876/1397852261736255528/1468831055808172055

Testing

A test environment is available in the following repository. Please refer to the README for verification and testing instructions:

https://github.com/leegeunhyeok/rozenite-pnp

pnpm build:all
pnpm --filter @rozenite/middleware pack --out package.tgz

# Copy the generated `package.tgz` to the root of `rozenite-pnp`
Screenshot 2026-02-08 at 19 14 50 Screenshot 2026-02-08 at 19 09 48

Unit tests

pnpm --filter @rozenite/middleware test
image

@vercel
Copy link

vercel bot commented Feb 8, 2026

@leegeunhyeok is attempting to deploy a commit to the Callstack Team on Vercel.

A member of the Team first needs to authorize it.

@V3RON
Copy link
Contributor

V3RON commented Feb 24, 2026

Hi @leegeunhyeok 👋
Is this ready for a review?

@leegeunhyeok
Copy link
Contributor Author

Hi @leegeunhyeok 👋 Is this ready for a review?

Yes, it's all set! Would you mind taking a look when you get a chance?

@vercel
Copy link

vercel bot commented Mar 17, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
rozenite Skipped Skipped Mar 17, 2026 0:31am

Request Review

@V3RON
Copy link
Contributor

V3RON commented Mar 17, 2026

Hey @leegeunhyeok 👋
Could you verify that the updated solution I pushed works on your side in a PnP setup? I stopped manually crawling node_modules and instead rely on Node.js’s module resolution mechanism. It should now work across all configurations, including PnP.

@leegeunhyeok
Copy link
Contributor Author

@V3RON Cool! The changes you worked on were tested in a PnP environment, and everything was confirmed to be working great 👍 (Testing environment)

Screenshot 2026-03-18 at 13 49 50

@V3RON V3RON changed the title feat: improve yarn pnp compatibility fix: auto-discovery with Yarn Plug'n'Play. Mar 18, 2026
@V3RON V3RON changed the title fix: auto-discovery with Yarn Plug'n'Play. fix: auto-discovery with Yarn Plug'n'Play Mar 18, 2026
@V3RON V3RON merged commit 859a73b into callstackincubator:main Mar 18, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants